package keeto.com.vn.bms.network;

import java.io.IOException;

import keeto.com.vn.bms.network.request.AddTechnicalRequest;
import keeto.com.vn.bms.network.request.CreateScheduleRequest;
import keeto.com.vn.bms.network.request.DeleteMsgRequest;
import keeto.com.vn.bms.network.request.DeleteTechnicalRequest;
import keeto.com.vn.bms.network.request.EditUserInfoRequest;
import keeto.com.vn.bms.network.request.GetComDoctorRequest;
import keeto.com.vn.bms.network.request.GetComDoctorResponse;
import keeto.com.vn.bms.network.request.GetCommentRequest;
import keeto.com.vn.bms.network.request.GetDetailMessegerRequest;
import keeto.com.vn.bms.network.request.GetDetailProductBMSRequest;
import keeto.com.vn.bms.network.request.GetDetailReportByTypeRequest;
import keeto.com.vn.bms.network.request.GetDetailReportFileRequest;
import keeto.com.vn.bms.network.request.GetDetailSergeryRequest;
import keeto.com.vn.bms.network.request.GetHopitalRequest;
import keeto.com.vn.bms.network.request.GetListComHospitalRequest;
import keeto.com.vn.bms.network.request.GetListCompanyRequest;
import keeto.com.vn.bms.network.request.GetListHintsRequest;
import keeto.com.vn.bms.network.request.GetListMedicalRecordHospitalRequest;
import keeto.com.vn.bms.network.request.GetListMedicalRecordRequest;
import keeto.com.vn.bms.network.request.GetListMessegerRequest;
import keeto.com.vn.bms.network.request.GetListNoficationRequest;
import keeto.com.vn.bms.network.request.GetListProductRequest;
import keeto.com.vn.bms.network.request.GetListSurgeryRequest;
import keeto.com.vn.bms.network.request.GetMessegerTwoGroupsRequest;
import keeto.com.vn.bms.network.request.GetScheduleRequest;
import keeto.com.vn.bms.network.request.GetSupportRequest;
import keeto.com.vn.bms.network.request.GetTypeUserRequest;
import keeto.com.vn.bms.network.request.GetUserInfoRequest;
import keeto.com.vn.bms.network.request.GetUserLogonRequest;
import keeto.com.vn.bms.network.request.GetuserLogoutResquest;
import keeto.com.vn.bms.network.request.PoseNotParticipateRequest;
import keeto.com.vn.bms.network.request.SendCommentRequest;
import keeto.com.vn.bms.network.request.SendDeleteMessagerRequest;
import keeto.com.vn.bms.network.request.SendDeleteNotifyRequest;
import keeto.com.vn.bms.network.request.SendMessegerRequest;
import keeto.com.vn.bms.network.request.SendMsgtoGroupsRequest;
import keeto.com.vn.bms.network.request.SendToAdminRequest;
import keeto.com.vn.bms.network.request.SendUpdateComDoctorRequest;
import keeto.com.vn.bms.network.request.SendUpdateHospitalRecordRequest;
import keeto.com.vn.bms.network.request.SentStatusScheduleRequest;
import keeto.com.vn.bms.network.request.SetReadMessageRequest;
import keeto.com.vn.bms.network.request.SetReadNotifyRequest;
import keeto.com.vn.bms.network.request.UpdateAndroidScheduleRequest;
import keeto.com.vn.bms.network.response.AddTechnicalResponse;
import keeto.com.vn.bms.network.response.CreateScheduleResponse;
import keeto.com.vn.bms.network.response.DeleteMsgResponse;
import keeto.com.vn.bms.network.response.DeleteTechnicalReponse;
import keeto.com.vn.bms.network.response.EditUserInfoResponse;
import keeto.com.vn.bms.network.response.GetCommentResponse;
import keeto.com.vn.bms.network.response.GetDetailMessegerResponse;
import keeto.com.vn.bms.network.response.GetDetailProductBMSResponse;
import keeto.com.vn.bms.network.response.GetDetailReportFileResponse;
import keeto.com.vn.bms.network.response.GetDetailReportbyTypeResponse;
import keeto.com.vn.bms.network.response.GetDetailSergeryResponse;
import keeto.com.vn.bms.network.response.GetHopitalResponse;
import keeto.com.vn.bms.network.response.GetListComHospitalResponse;
import keeto.com.vn.bms.network.response.GetListCompanyResponse;
import keeto.com.vn.bms.network.response.GetListEducationResponse;
import keeto.com.vn.bms.network.response.GetListHintsResponse;
import keeto.com.vn.bms.network.response.GetListMedicalRecordHospitalResponse;
import keeto.com.vn.bms.network.response.GetListMedicalRecordResponse;
import keeto.com.vn.bms.network.response.GetListMessegerResponse;
import keeto.com.vn.bms.network.response.GetListNotificationResponse;
import keeto.com.vn.bms.network.response.GetListProductsResponse;
import keeto.com.vn.bms.network.response.GetListPromotionResponse;
import keeto.com.vn.bms.network.response.GetListSeminarResponse;
import keeto.com.vn.bms.network.response.GetListSurgeryResponse;
import keeto.com.vn.bms.network.response.GetMessgerTwoGroupsResponse;
import keeto.com.vn.bms.network.response.GetScheduleResponse;
import keeto.com.vn.bms.network.response.GetSupportResponse;
import keeto.com.vn.bms.network.response.GetTypeUserResponse;
import keeto.com.vn.bms.network.response.GetUserInfoResponse;
import keeto.com.vn.bms.network.response.GetUserLogonResponse;
import keeto.com.vn.bms.network.response.GetuserLogoutResponse;
import keeto.com.vn.bms.network.response.PoseNotParticipateReponse;
import keeto.com.vn.bms.network.response.SendCommentResponse;
import keeto.com.vn.bms.network.response.SendDeleteMessagerResponse;
import keeto.com.vn.bms.network.response.SendDeleteNotifyResponse;
import keeto.com.vn.bms.network.response.SendMessegerResponse;
import keeto.com.vn.bms.network.response.SendMsgtoGroupsResponse;
import keeto.com.vn.bms.network.response.SendToAdminResponse;
import keeto.com.vn.bms.network.response.SendUpdateComDoctorResponse;
import keeto.com.vn.bms.network.response.SendUpdateHospitalRecordResponse;
import keeto.com.vn.bms.network.response.SentStatusScheduleReponse;
import keeto.com.vn.bms.network.response.SetReadMessageResponse;
import keeto.com.vn.bms.network.response.SetReadNotifyResponse;
import keeto.com.vn.bms.network.response.UpdateAndroidScheduleResponse;
import keeto.com.vn.bms.network.response.getAndroidNotificationsReponse;

import org.apache.http.client.ClientProtocolException;
import org.json.JSONException;

public interface IBMSProtocol {

//		public final String URL ="http://192.168.1.43/BMS/01.CRM-Server/api/index" ;
//		public final String URL ="http://192.168.1.43/BMS/01.CRM-Server/api/index" ;
	public final String URL ="http://bms.xakhohang.vn/api/index" ;
//		public final String URL ="http://192.168.1.170/api/index" ;
	public static final int TIMEOUT_SOCKET = 30 * 1000;
	public final int STATUS_CODE_OK = 1;
	public final int STATUS_CODE_GENERIC_FAIL = 0;
	public final int STATUS_CODE_GENERIC_FAIL_CONECTTION = 5;
	public final int STATUS_CODE_RECORD_NOT_FOUND = 2;
	public final int STATUS_CODE_EXIT_RECORD = 3;
	public final int STATUS_CODE_ERROR_PERMISSION = 4;

	public final String METHOD_GET_LOGON = "AndroidLogin";
	public final String METHOD_CREATE_SCHEDULE = "CreateAndroidSchedule";
	public final String METHOD_UPDATE_ANDROID_SCHEDULE = "UpdateAndroidSchedule";
	public final String METHOD_GET_LOGOUT = "AndroidLogout";
	public final String METHOD_GET_TYPE_USER = "getAndroidUsers";
	public final String METHOD_GET_USERINFO = "GetAndroidMyUser";
	public final String METHOD_GET_EDIT_USERINFO = "EditAndroidUser";
	public final String METHOD_GET_LIST_SURGERY = "getAndroidSchedules";
	public final String METHOD_GET_SCHEDULE = "getAndroidCaseGroups";
	public final String METHOD_GET_HOSPITAL = "getAndroidHospitals";
	public final String METHOD_GET_COMMENT = "getAndroidComments";
	public final String METHOD_GET_ANDROID_SCHEDULE = "getAndroidSchedule";
	public final String METHOD_ADD_TECHNICAL = "AddAndroidTechnician";
	public final String METHOD_CHANGE_STATUSSCHEDULE = "ChangeAndroidStatusSchedule";
	public final String METHOD_GET_COMPANY = "getAndroidCompanies";
	public final String METHOD_GET_RECORD = "getAndroidCaseGroups";
	public final String METHOD_SEND_COMMENT = "SendAndroidComment";
	public final String METHOD_GET_LIST_NOTIFICATION = "getAndroidNotifications";
	public final String METHOD_GET_LIST_MESSEGER = "getAndroidMessages";
	public final String METHOD_GET_DETAIL_MESSEGER = "getAndroidMessage";
	public final String METHOD_SEND_MESSEGER = "SendAndroidMessage";
	public final String METHOD_DELETE_TECHNICAL = "DeleteAndroidTechnician";
	public final String METHOD_GET_LIST_COURSES = "getAndroidCourses";
	public final String METHOD_CHANGE_TECHNICAL = "ChangeAndroidTechnician";
	public final String METHOD_GET_LIST_PROMOS = "getAndroidPromotions";
	public final String METHOD_GET_LIST_PRODUCTS = "getAndroidProducts";
	public final String METHOD_GET_LIST_WORKSHOPS = "getAndroidWorkshops";
	public final String METHOD_NOTIFICATION = "getAndroidNotifications";
	public final String METHOD_SEND_TO_ADMIN="SendAndroidMessageAdmin";
	public final String METHOD_GET_DETAIL_PRODUCTS = "getAndroidProduct";
	public final String METHOD_GET_DETAIL_PROMOTION = "getAndroidPromotion";
	public final String METHOD_GET_DETAIL_EDUCATION = "getAndroidCourse";
	public final String METHOD_GET_DETAIL_SEMINAR = "getAndroidWorkshop";
	public final String METHOD_ADMIN_INFOR = "getAndroidSupports";
	public final String METHOD_GET_DETAIL_REPORT_BY_TYPE = "AndroidReport";
	public final String METHOD_GET_DETAIL_REPORT_FILE = "CompareWithCompanies";
	public final String METHOD_GET_COM_DOCTOR = "getAndroidCompDoctor";
	public final String METHOD_SEND_COM_DOCTOR = "CreateUpdateAndroidCompDoctorDetail";
	public final String METHOD_GET_LIST_COM_HOS= "getAndroidCompHospital";
	public final String METHOD_GET_LIST_RECORD_HOS= "GetAndroidCaseGroup";
	public final String METHOD_SEND_HOS_RECORD = "CreateUpdateAndroidCompHosOperationDetail";
	public final String METHOD_SEND_READ_NOTIFY = "ReadAndroidNotification";
	public final String METHOD_TIME_NOYIFICATION = "GetAndroidTimeNotification";
	public final String METHOD_SEND_READ_MESSAGER = "ReadAndroidMessage";
	public final String METHOD_SEND_DELETE_NOTIFY= "DeleteAndroidNotifications";
	public final String METHOD_SEND_DELETE_MESSAGER= "DeleteAndroidMessages";
	public final String METHOD_DELETE_FILE= "DeleteReports";
	public final String METHOD_GET_MSG_TWO_GROUPS= "GetAndroidMessage2Group";
	public final String METHOD_SEND_MSG_TO_GROUPS= "SendAndroidMessageAdmin";
	public final String METHOD_GET_LIST_HINTS= "getAndroidMessageTemplates";
	public final String METHOD_DELETE_MESSEGER= "DeleteAndroidMessageRelated";


	/*
	 * method name get data
	 */

	public GetUserLogonResponse getLogon(GetUserLogonRequest request)throws JSONException, ClientProtocolException, IOException;
	public CreateScheduleResponse createScheldule(CreateScheduleRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetuserLogoutResponse getLogout(GetuserLogoutResquest resquest) throws JSONException, ClientProtocolException, IOException;
	public GetTypeUserResponse getTypeUser(GetTypeUserRequest request) throws JSONException, ClientProtocolException, IOException;
	public GetUserInfoResponse getUserInfo(GetUserInfoRequest request)throws JSONException, ClientProtocolException, IOException;
	public EditUserInfoResponse editUserInfo(EditUserInfoRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListSurgeryResponse getListSurgery(GetListSurgeryRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetScheduleResponse getSchedule(GetScheduleRequest request) throws JSONException, ClientProtocolException, IOException;
	public GetHopitalResponse getHopital(GetHopitalRequest request) throws JSONException, ClientProtocolException, IOException;
	public GetCommentResponse getComment(GetCommentRequest request) throws JSONException, ClientProtocolException, IOException;
	public GetDetailSergeryResponse getDetailSergery(GetDetailSergeryRequest request)throws JSONException, ClientProtocolException, IOException;
	public AddTechnicalResponse addTechnical(AddTechnicalRequest request)throws JSONException, ClientProtocolException, IOException;
	public SentStatusScheduleReponse sentStatusSchedule(SentStatusScheduleRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListCompanyResponse getListCompanies(GetListCompanyRequest request) throws JSONException, ClientProtocolException, IOException;
	public GetListMedicalRecordResponse getListRecord(GetListMedicalRecordRequest request) throws JSONException, ClientProtocolException, IOException;
	public SendCommentResponse sentComment(SendCommentRequest request)throws JSONException, ClientProtocolException, IOException;
	public UpdateAndroidScheduleResponse updateAndroidSchedule(UpdateAndroidScheduleRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListNotificationResponse getListNotify(GetListNoficationRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListMessegerResponse getListMesseger(GetListMessegerRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetDetailMessegerResponse getDetailMesseger(GetDetailMessegerRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendMessegerResponse sendMesseger(SendMessegerRequest request) throws JSONException, ClientProtocolException, IOException;
	public DeleteTechnicalReponse getDeleteTechnical(DeleteTechnicalRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListEducationResponse getListCourses(GetListProductRequest request)throws JSONException, ClientProtocolException, IOException;
	public PoseNotParticipateReponse getPoseNotParticipate(PoseNotParticipateRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListPromotionResponse getListPromos(GetListProductRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListProductsResponse getListProducts(GetListProductRequest request)throws JSONException, ClientProtocolException, IOException;
	public getAndroidNotificationsReponse getAndroidNotifications(String authenKey)throws JSONException, ClientProtocolException, IOException;
	public GetListSeminarResponse getListSeminar(GetListProductRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetDetailProductBMSResponse getDetailBMS(GetDetailProductBMSRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendToAdminResponse sendToAdmin(SendToAdminRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetDetailReportbyTypeResponse getDetailReportbyType(GetDetailReportByTypeRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetDetailReportFileResponse getDetailReportFile(GetDetailReportFileRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetSupportResponse getAdminInfo(GetSupportRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetComDoctorResponse getComDoctor(GetComDoctorRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendUpdateComDoctorResponse sendUpdateComDoctor(SendUpdateComDoctorRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListComHospitalResponse getListComHos(GetListComHospitalRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListMedicalRecordHospitalResponse getListRecordHos(GetListMedicalRecordHospitalRequest request) throws JSONException, ClientProtocolException, IOException;
	public SendUpdateHospitalRecordResponse sendUpdateHosRecord(SendUpdateHospitalRecordRequest request)throws JSONException, ClientProtocolException, IOException;
	public SetReadNotifyResponse sendReadNotify(SetReadNotifyRequest request)throws JSONException, ClientProtocolException, IOException;
	int GetTimeNotification() throws JSONException, ClientProtocolException,IOException;
	public SetReadMessageResponse sendReadMessage(SetReadMessageRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendDeleteNotifyResponse sendDeleteNotify(SendDeleteNotifyRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendDeleteMessagerResponse sendDeleteMessager(SendDeleteMessagerRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetMessgerTwoGroupsResponse GetMessgerHome(GetMessegerTwoGroupsRequest request)throws JSONException, ClientProtocolException, IOException;
	public SendMsgtoGroupsResponse SendMsgtoGroups(SendMsgtoGroupsRequest request)throws JSONException, ClientProtocolException, IOException;
	public GetListHintsResponse GetListHints(GetListHintsRequest request)throws JSONException, ClientProtocolException, IOException;
	public DeleteMsgResponse DeleteMsg(DeleteMsgRequest request)throws JSONException, ClientProtocolException, IOException;
	
}
